小米路由器 SSH密码根据SN破解

写了个 Node.js 命令行版的,测试了一下,和官方给出的 SSH 密码一样。

源码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
const Crypto = require('crypto');

var salt = {
'r1d': 'A2E371B0-B34B-48A5-8C40-A7133F3B5D88',
'others': 'd44fb0960aa0-a5e6-4a30-250f-6d2df50a'
}

function getPasswd(sn) {
var md5 = Crypto.createHash('md5');
const hex = md5.update(sn + getSalt(sn)).digest('hex')
return hex.substring(0, 8);
}

function getSalt(sn) {
if (sn.includes('/')) {
return swapSalt(salt['others']);
} else {
return salt['r1d'];
}
}

function swapSalt(s) {
return s.split('-').reverse().join('-');
}

const SN = process.argv[2]
console.log(`Usage: ${SN} SN` )

const passwd = getPasswd(SN)
console.log('decrypt password:', passwd)

使用方法

  • 复制代码到文件,index.js

  • 命令行运行代码

    1
    2
    3
    $ node index.js 36418/K1WW04216
    Usage: 36418/K1WW04216 SN
    decrypt password: f25b355a
  • 登录到路由器,没有ssh的,先sudo apt-get install ssh

    用户名:root
    密码:f25b355a

  • 看到 ARE U OK即破解成功

坚持原创技术分享,您的支持将鼓励我继续创作!